let和const命令

let 命令:

  1. 所声明的变量只在let命令所在的代码块内有效。
  2. for循环的计数器就很适合使用let命令。
  3. 不存在变量提升
  4. 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定“在这个区域,不在受外部的影响。
  5. 在相同作用域中不允许重复声明

块级作用域

  1. let实际上为javascript新增了块级作用域
  2. ES6允许块级作用域的任意嵌套。
  3. ES5规定,函数只能在顶层作用域和函数作用域中声明,不能再块级作用域中声明。
  4. ES6引入了块级作用域,明确允许在块级作用域之中声明函数。在块级作用域中,函数声明语句的行为类似于let,在块级作用域之外不可引用。

do表达式

  1. 在块级作用域之前加上do,使它变为do表达式,然后就会返回内部最后执行的表达式的值。

const命令

  1. 声明一个只读常量,一旦声明,常量的值就不能改变。
  2. 实际上const保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
  3. 对于简单类型的数据,值就保存在变量指向的那个内存地址。
  4. 而对于复合类型的数据,变量指向的内存地址,保存的只是一个指针,const保证这个指针固定,而它指向的数据结构是不能控制的。

ES6声明变量的六种方法

ES5:var 和 function
ES6:let, const, import, class

顶层对象的属性

  1. 顶层对象,在浏览器环境指的是window对象,在node指的是global对象。ES5之中,顶层对象的属性与全局变量是等价的。

zhanziwei
75 声望1 粉丝